/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package poo.biblioteca.vistas;

import java.awt.Component;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionListener;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;

/**
 *
 * @author apo
 */
public class FrmPrincipal extends javax.swing.JFrame {

    /**
     * Creates new form FrmPrincipal
     */
    public FrmPrincipal() {
        initComponents();

        setIconImage(new ImageIcon(getClass().getResource("/poo/biblioteca/iconos/IconoAplicacion.png")).getImage());
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        tlbPrincipal = new javax.swing.JToolBar();
        btnRegistrarPrestamo = new javax.swing.JButton();
        btnRegistrarLector = new javax.swing.JButton();
        btnRegistrarLibro = new javax.swing.JButton();
        btnRegistrarEjemplar = new javax.swing.JButton();
        desktop = new javax.swing.JDesktopPane();
        pnlPrincipal = new javax.swing.JPanel();
        mnbPrincipal = new javax.swing.JMenuBar();
        mnuArchivo = new javax.swing.JMenu();
        mniConfigurarConexion = new javax.swing.JMenuItem();
        mniSalir = new javax.swing.JMenuItem();
        mnuLibros = new javax.swing.JMenu();
        mniRegistrarLibro = new javax.swing.JMenuItem();
        mniMantenimientoLibros = new javax.swing.JMenuItem();
        sprLibros = new javax.swing.JPopupMenu.Separator();
        mniRegistrarEjemplar = new javax.swing.JMenuItem();
        mniMantenimientoEjemplares = new javax.swing.JMenuItem();
        sprLibros2 = new javax.swing.JPopupMenu.Separator();
        mniRegistrarGenero = new javax.swing.JMenuItem();
        mniMantenimientoGenero = new javax.swing.JMenuItem();
        mnuAutores = new javax.swing.JMenu();
        mniRegistrarAutor = new javax.swing.JMenuItem();
        mniMantenimientoAutores = new javax.swing.JMenuItem();
        mnuEditoriales = new javax.swing.JMenu();
        mniRegistrarEditorial = new javax.swing.JMenuItem();
        mniMantenimientoEditoriales = new javax.swing.JMenuItem();
        mnuLectores = new javax.swing.JMenu();
        mniRegistrarLector = new javax.swing.JMenuItem();
        mniMantenimientoLectores = new javax.swing.JMenuItem();
        sprLectores = new javax.swing.JPopupMenu.Separator();
        mniRegistroTipoLector = new javax.swing.JMenuItem();
        mniMantenimientoTipoLector = new javax.swing.JMenuItem();
        mnuPrestamos = new javax.swing.JMenu();
        mniRegistrarPrestamo = new javax.swing.JMenuItem();
        mniRegistrarDevolucion = new javax.swing.JMenuItem();
        mnuReportes = new javax.swing.JMenu();
        mnuReportesPrestamos = new javax.swing.JMenu();
        mniReportePrestamosVencidos = new javax.swing.JMenuItem();
        mniReportePrestamosActivos = new javax.swing.JMenuItem();
        mnuReportesAlumnos = new javax.swing.JMenu();
        mniReporteAlumnosSuspendidos = new javax.swing.JMenuItem();
        mnuAyuda = new javax.swing.JMenu();
        mniAcercaDe = new javax.swing.JMenuItem();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Biblioteca");
        setIconImages(null);

        tlbPrincipal.setFloatable(false);
        tlbPrincipal.setRollover(true);

        btnRegistrarPrestamo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/poo/biblioteca/iconos/Calendar.png"))); // NOI18N
        btnRegistrarPrestamo.setText("Nuevo Prestamo");
        btnRegistrarPrestamo.setFocusable(false);
        btnRegistrarPrestamo.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btnRegistrarPrestamo.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        tlbPrincipal.add(btnRegistrarPrestamo);

        btnRegistrarLector.setIcon(new javax.swing.ImageIcon(getClass().getResource("/poo/biblioteca/iconos/User.png"))); // NOI18N
        btnRegistrarLector.setText("Nuevo Lector");
        btnRegistrarLector.setFocusable(false);
        btnRegistrarLector.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btnRegistrarLector.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        tlbPrincipal.add(btnRegistrarLector);

        btnRegistrarLibro.setIcon(new javax.swing.ImageIcon(getClass().getResource("/poo/biblioteca/iconos/Book.png"))); // NOI18N
        btnRegistrarLibro.setText("Nuevo Libro");
        btnRegistrarLibro.setFocusable(false);
        btnRegistrarLibro.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btnRegistrarLibro.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        tlbPrincipal.add(btnRegistrarLibro);

        btnRegistrarEjemplar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/poo/biblioteca/iconos/Plus.png"))); // NOI18N
        btnRegistrarEjemplar.setText("Nuevo Ejemplar");
        btnRegistrarEjemplar.setFocusable(false);
        btnRegistrarEjemplar.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btnRegistrarEjemplar.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        tlbPrincipal.add(btnRegistrarEjemplar);

        pnlPrincipal.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        pnlPrincipal.setAlignmentY(0.0F);

        javax.swing.GroupLayout pnlPrincipalLayout = new javax.swing.GroupLayout(pnlPrincipal);
        pnlPrincipal.setLayout(pnlPrincipalLayout);
        pnlPrincipalLayout.setHorizontalGroup(
            pnlPrincipalLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 0, Short.MAX_VALUE)
        );
        pnlPrincipalLayout.setVerticalGroup(
            pnlPrincipalLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 22, Short.MAX_VALUE)
        );

        mnuArchivo.setMnemonic('A');
        mnuArchivo.setText("Archivo");

        mniConfigurarConexion.setText("Configurar Conexión");
        mnuArchivo.add(mniConfigurarConexion);

        mniSalir.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.CTRL_MASK));
        mniSalir.setText("Salir");
        mnuArchivo.add(mniSalir);

        mnbPrincipal.add(mnuArchivo);

        mnuLibros.setMnemonic('L');
        mnuLibros.setText("Libros");

        mniRegistrarLibro.setText("Registrar Libro");
        mnuLibros.add(mniRegistrarLibro);

        mniMantenimientoLibros.setText("Mantenimiento de Libros");
        mnuLibros.add(mniMantenimientoLibros);
        mnuLibros.add(sprLibros);

        mniRegistrarEjemplar.setText("Registrar Ejemplar");
        mnuLibros.add(mniRegistrarEjemplar);

        mniMantenimientoEjemplares.setText("Mantenimiento de Ejemplares");
        mnuLibros.add(mniMantenimientoEjemplares);
        mnuLibros.add(sprLibros2);

        mniRegistrarGenero.setText("Registrar Género");
        mnuLibros.add(mniRegistrarGenero);

        mniMantenimientoGenero.setText("Mantenimiento de Géneros");
        mnuLibros.add(mniMantenimientoGenero);

        mnbPrincipal.add(mnuLibros);

        mnuAutores.setText("Autores");

        mniRegistrarAutor.setText("Registrar Autor");
        mnuAutores.add(mniRegistrarAutor);

        mniMantenimientoAutores.setText("Mantenimiento de Autores");
        mnuAutores.add(mniMantenimientoAutores);

        mnbPrincipal.add(mnuAutores);

        mnuEditoriales.setText("Editoriales");

        mniRegistrarEditorial.setText("Registrar Editorial");
        mnuEditoriales.add(mniRegistrarEditorial);

        mniMantenimientoEditoriales.setText("Mantenimiento de Editoriales");
        mnuEditoriales.add(mniMantenimientoEditoriales);

        mnbPrincipal.add(mnuEditoriales);

        mnuLectores.setText("Lectores");

        mniRegistrarLector.setText("Registrar Lector");
        mnuLectores.add(mniRegistrarLector);

        mniMantenimientoLectores.setText("Mantenimiento de Lectores");
        mnuLectores.add(mniMantenimientoLectores);
        mnuLectores.add(sprLectores);

        mniRegistroTipoLector.setText("Registrar Tipo Lector");
        mnuLectores.add(mniRegistroTipoLector);

        mniMantenimientoTipoLector.setText("Mantenimiento Tipo Lector");
        mnuLectores.add(mniMantenimientoTipoLector);

        mnbPrincipal.add(mnuLectores);

        mnuPrestamos.setText("Préstamos");

        mniRegistrarPrestamo.setText("Registrar Préstamo");
        mnuPrestamos.add(mniRegistrarPrestamo);

        mniRegistrarDevolucion.setText("Registrar Devolución");
        mnuPrestamos.add(mniRegistrarDevolucion);

        mnbPrincipal.add(mnuPrestamos);

        mnuReportes.setText("Reportes");

        mnuReportesPrestamos.setText("Préstamos");

        mniReportePrestamosVencidos.setText("Reporte de Préstamos Vencidos");
        mnuReportesPrestamos.add(mniReportePrestamosVencidos);

        mniReportePrestamosActivos.setText("Reporte de Préstamos Activos");
        mnuReportesPrestamos.add(mniReportePrestamosActivos);

        mnuReportes.add(mnuReportesPrestamos);

        mnuReportesAlumnos.setText("Alumnos");

        mniReporteAlumnosSuspendidos.setText("Alumno Suspendidos");
        mnuReportesAlumnos.add(mniReporteAlumnosSuspendidos);

        mnuReportes.add(mnuReportesAlumnos);

        mnbPrincipal.add(mnuReportes);

        mnuAyuda.setText("Ayuda");

        mniAcercaDe.setText("Acerca de");
        mnuAyuda.add(mniAcercaDe);

        mnbPrincipal.add(mnuAyuda);

        setJMenuBar(mnbPrincipal);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(tlbPrincipal, javax.swing.GroupLayout.DEFAULT_SIZE, 839, Short.MAX_VALUE)
            .addComponent(desktop)
            .addComponent(pnlPrincipal, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(tlbPrincipal, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(desktop, javax.swing.GroupLayout.DEFAULT_SIZE, 566, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(pnlPrincipal, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
        );

        setSize(new java.awt.Dimension(855, 738));
        setLocationRelativeTo(null);
    }// </editor-fold>//GEN-END:initComponents
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton btnRegistrarEjemplar;
    private javax.swing.JButton btnRegistrarLector;
    private javax.swing.JButton btnRegistrarLibro;
    private javax.swing.JButton btnRegistrarPrestamo;
    private javax.swing.JDesktopPane desktop;
    private javax.swing.JMenuBar mnbPrincipal;
    private javax.swing.JMenuItem mniAcercaDe;
    private javax.swing.JMenuItem mniConfigurarConexion;
    private javax.swing.JMenuItem mniMantenimientoAutores;
    private javax.swing.JMenuItem mniMantenimientoEditoriales;
    private javax.swing.JMenuItem mniMantenimientoEjemplares;
    private javax.swing.JMenuItem mniMantenimientoGenero;
    private javax.swing.JMenuItem mniMantenimientoLectores;
    private javax.swing.JMenuItem mniMantenimientoLibros;
    private javax.swing.JMenuItem mniMantenimientoTipoLector;
    private javax.swing.JMenuItem mniRegistrarAutor;
    private javax.swing.JMenuItem mniRegistrarDevolucion;
    private javax.swing.JMenuItem mniRegistrarEditorial;
    private javax.swing.JMenuItem mniRegistrarEjemplar;
    private javax.swing.JMenuItem mniRegistrarGenero;
    private javax.swing.JMenuItem mniRegistrarLector;
    private javax.swing.JMenuItem mniRegistrarLibro;
    private javax.swing.JMenuItem mniRegistrarPrestamo;
    private javax.swing.JMenuItem mniRegistroTipoLector;
    private javax.swing.JMenuItem mniReporteAlumnosSuspendidos;
    private javax.swing.JMenuItem mniReportePrestamosActivos;
    private javax.swing.JMenuItem mniReportePrestamosVencidos;
    private javax.swing.JMenuItem mniSalir;
    private javax.swing.JMenu mnuArchivo;
    private javax.swing.JMenu mnuAutores;
    private javax.swing.JMenu mnuAyuda;
    private javax.swing.JMenu mnuEditoriales;
    private javax.swing.JMenu mnuLectores;
    private javax.swing.JMenu mnuLibros;
    private javax.swing.JMenu mnuPrestamos;
    private javax.swing.JMenu mnuReportes;
    private javax.swing.JMenu mnuReportesAlumnos;
    private javax.swing.JMenu mnuReportesPrestamos;
    private javax.swing.JPanel pnlPrincipal;
    private javax.swing.JPopupMenu.Separator sprLectores;
    private javax.swing.JPopupMenu.Separator sprLibros;
    private javax.swing.JPopupMenu.Separator sprLibros2;
    private javax.swing.JToolBar tlbPrincipal;
    // End of variables declaration//GEN-END:variables

    public void mniConfigurarConexionAddActionListener(ActionListener actionListener) {
        mniConfigurarConexion.addActionListener(actionListener);
    }

    public void mniSalirAddActionListener(ActionListener actionListener) {
        mniSalir.addActionListener(actionListener);
    }

    public void mniAcercaDeAddActionListener(ActionListener actionListener) {
        mniAcercaDe.addActionListener(actionListener);
        //setIconImage(Toolkit.getDefaultToolkit().getImage("/poo/biblioteca/iconos/Plus.png"));
    }

    public void mniRegistrarGeneroAddActionListener(ActionListener actionListener) {
        mniRegistrarGenero.addActionListener(actionListener);
    }

    public void addComponenteADesktop(Component componente) {
        desktop.add(componente);
    }

    public void mostrarError(String mensaje) {
        JOptionPane.showMessageDialog(this, mensaje, "Error de Configuración",
                JOptionPane.ERROR_MESSAGE);
    }

    public void mniMantenimientoGeneroAddActionListener(ActionListener actionListener) {
        mniMantenimientoGenero.addActionListener(actionListener);
    }

    public void mniRegistrarEditorialAddActionListener(ActionListener actionListener) {
        mniRegistrarEditorial.addActionListener(actionListener);
    }

    public void mniMantenimientoEditorialesAddActionListener(ActionListener actionListener) {
        mniMantenimientoEditoriales.addActionListener(actionListener);
    }

    public void mniRegistrarAutorAddActionListener(ActionListener actionListener) {
        mniRegistrarAutor.addActionListener(actionListener);
    }

    public void mniMantenimientoAutoresAddActionListener(ActionListener actionListener) {
        mniMantenimientoAutores.addActionListener(actionListener);
    }

    public void mniRegistrarLibroAddActionListener(ActionListener actionListener) {
        mniRegistrarLibro.addActionListener(actionListener);
        btnRegistrarLibro.addActionListener(actionListener);
    }

    public void mniMnttoLibroAddActionListener(ActionListener actionListener) {

        mniMantenimientoLibros.addActionListener(actionListener);
    }

    public void mniRegistrarEjemplarAddActionListener(ActionListener al) {
        mniRegistrarEjemplar.addActionListener(al);
        btnRegistrarEjemplar.addActionListener(al);
    }

    public void mniRegistrarTipoLectorAddActionListener(ActionListener actionListener) {
        mniRegistroTipoLector.addActionListener(actionListener);
    }
    
    public void mniRegistrarLectorAddActionListener (ActionListener al) {
        mniRegistrarLector.addActionListener(al);
        btnRegistrarLector.addActionListener(al);
    }

    public void mniRegistrarPrestamoAddActionListener(ActionListener actionListener) {
        mniRegistrarPrestamo.addActionListener(actionListener);
        btnRegistrarPrestamo.addActionListener(actionListener);
    }

    public void mniReportePrestamosActivosAddActionListener(ActionListener actionListener) {
        mniReportePrestamosActivos.addActionListener(actionListener);
    }

}
